A virtual machine (VM) is a portion of software that, when executed on appropriate hardware, creates an environment allowing the virtualization of an actual physical computer system (e.g., a server, a mainframe computer, etc.). The actual physical computer system is typically referred to as a “host machine,” and the operating system (OS) of the host machine is typically referred to as the “host operating system.” Typically, software on the host machine known as a “hypervisor” (or a “virtual machine monitor”) manages the execution of one or more virtual machines or “guests”, providing a variety of functions such as virtualizing and allocating resources, context switching among virtual machines, etc. The operating system (OS) of the virtual machine is typically referred to as the “guest operating system.”
In a virtualized environment, multiple virtual machines can communicate over a network by sending networking packets to the host machine to be forwarded through the network. If a configuration change is made on the host machine it can be necessary for the hypervisor on the host to modify or otherwise filter incoming and/or outgoing packets from/to a particular virtual machine. This is referred to as packet filtering.